import axios from 'axios'
import { Loading, Message } from 'element-ui';
import router from './router'

//定义加载动画
let loading
function startLoading() {
  loading = Loading.service({
    lock: true,
    text: '拼命加载中...',
    background: 'rgba(0,0,0,.7)'
  })
}
function endLoading() {
  loading.close()
}

//请求拦截
axios.interceptors.request.use(config => {
  //加载动画
  startLoading()

  //如果token存在则配置统一的请求头  
  const isLogin = localStorage.eleToken ? true : false
  if(isLogin) {
    config.headers.Authorization = localStorage.eleToken
  }
  return config
}, error => {
  return Promise.reject(error)
})
//响应拦截
axios.interceptors.response.use(response => {
  //判断token是否过期

  //结束加载动画
  endLoading()
  return response
}, error => {
  //错误提醒
  endLoading()
  Message.error(error.response.data)

  // 获取错误状态码
  const { status } = error.response
  if(status == 401){
    Message.error('token失效，请重新登陆')
    //清除token
    localStorage.removeItem('eleToken')
    //跳转到登录界面
    router.push('/login')
  }

  return Promise.reject(error)
})

export default axios